/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.ufrn.cerescaico.sepe.bo;

import br.ufrn.cerescaico.sepe.Sepe;
import br.ufrn.cerescaico.sepe.beans.Area;
import br.ufrn.cerescaico.sepe.beans.Categoria;
import br.ufrn.cerescaico.sepe.dao.util.DataAccessLayerException;
import java.util.ArrayList;
import java.util.List;
import org.apache.log4j.Logger;

/**
 * Classe de negócio do bean Categoria do sistema SEPE.
 * @author Taciano Morais Silva
 * @version 12/08/2010, 21h00m
 * @since 12/08/2010, 21h00m
 */
public class AreaBO extends AbstractBO {

    /**
     * Logger.
     */
    private Logger logger = Logger.getLogger(AreaBO.class);

    /**
     * Construtor que recebe como parâmetro a fachada {@link Sepe}.
     * @param sepe A fachada {@link Sepe}.
     */
    public AreaBO(Sepe sepe) {
        super(sepe);
    }

    /**
     * Lista todas as categorias de trabalhos.
     * @return A lista de usuários.
     */
    public List<Area> listar() throws SepeException {
        ArrayList<Area> areas = new ArrayList<Area>();
        // try {
        areas.add(Area.EDUCACAO);
        areas.add(Area.HISTORIA);
        areas.add(Area.GEOGRAFIA);
        areas.add(Area.SISTEMAS_INFORMACAO);
        areas.add(Area.MATEMATICA);
        areas.add(Area.LETRAS);
        areas.add(Area.CIENCIAS_CONTABEIS);
        areas.add(Area.TURISMO);
        areas.add(Area.ADMINISTRACAO);
        areas.add(Area.DIREITO);
        areas.add(Area.AREA_AFIM);
        return areas;
        // } catch (DataAccessLayerException ex) {
        //   logger.error(ex.getMessage(), ex);
        // throw new SepeException("erro.categoria.bo.listarCategoriasTrabalhos", ex);
        //}
    }

    public Area getArea(String nome) throws SepeException {
        if (nome.equals(Area.EDUCACAO.getNome())) {
            return Area.EDUCACAO;
        } else if (nome.equals(Area.HISTORIA.getNome())) {
            return Area.HISTORIA;
        } else if (nome.equals(Area.GEOGRAFIA.getNome())) {
            return Area.GEOGRAFIA;
        } else if (nome.equals(Area.SISTEMAS_INFORMACAO.getNome())) {
            return Area.SISTEMAS_INFORMACAO;
        } else if (nome.equals(Area.MATEMATICA.getNome())) {
            return Area.MATEMATICA;
        } else if (nome.equals(Area.LETRAS.getNome())) {
            return Area.LETRAS;
        } else if (nome.equals(Area.CIENCIAS_CONTABEIS.getNome())) {
            return Area.CIENCIAS_CONTABEIS;
        } else if (nome.equals(Area.TURISMO.getNome())) {
            return Area.TURISMO;
        } else if (nome.equals(Area.ADMINISTRACAO.getNome())) {
            return Area.ADMINISTRACAO;
        } else if (nome.equals(Area.DIREITO.getNome())) {
            return Area.DIREITO;
        } else if (nome.equals(Area.AREA_AFIM.getNome())) {
            return Area.AREA_AFIM;
        }
        throw new SepeException("erro.bo.area.naocadastrada");
    }
}
